<!DOCTYPE html><html lang="ru" dir="ltr" spellcheck><head><!--#include file="h.htm"--><meta name="description" content="Пиццикато Алексея Лота. Конспект книги 'Отладка приложений для Microsoft .Net' Джона Роббинса."><meta name="keywords" content="сайт алексея лота, технологии, джон роббинс, отладка приложений, microsoft .net, алексей лот, сайт лота"><title>Конспект книги "Отладка приложений для Microsoft .Net" Джона Роббинса</title></head><body><header><h1 class=m>Пиццикато Алексея Лота</h1><nav><a href="p.htm">Главная</a><a href="m.htm">Песни</a><a href="l.htm">Психология</a><a href="r.htm">Рассказы</a><a href="b.htm">Религия</a><a href="s.htm">Стихотворения</a><a id="i" href="t.htm">Технологии</a><a href="f.htm">Философия</a><a href="i.htm">Фотография</a></nav></header><article id="c"><h2 class=m>Конспект книги "Отладка приложений для Microsoft .Net" Джона Роббинса</h2><div id="w">Большинство команд тратит в среднем 50% цикла разработки на отладку.<br><br>Отладка требует специального обучения.<br><br>Для того, чтобы эффективно отлаживать любую технологию, нужно знать намного больше, чем может дать книга, сфокусированная на конкретной технологии.<br><br>Книги по программированию бывают посвящены менеджменту и технологиям.<br><br>Основные программы отладки .NET: VisualStudio и WinDBG.<br><br>Разработчики должны использовать только учетные записи, обладающие привилегиями пользователя.<br><br>john@wintellect.com - автор.<br><br>Ошибки помогают понять работу вещей.<br><br>Ошибки в ПО могут привести к смене работы.<br><br>Ошибка - все, что угодно, что заставляет пользователя страдать.<br><br>Категории ошибок: аварии и зависания, низкая производительность и масштабируемость, неверные результаты, нарушения безопасности, противоречивые пользовательские интерфейсы, неудовлетворенные ожидания.<br><br>Нельзя выпускать на рынок продукт с авариями и зависаниями.<br><br>Windows Error Reporting.<br><br>Пользователи иногда перестают пользоваться продуктом из-за одного неудачного опыта.<br><br>С точки зрения управления проектами главное - уделить внимание производительности.<br><br>Должны быть заданы конкретные цифры, связанные с производительностью.<br><br>Не делать продукт более медленным, чем его предыдущая версия.<br><br>Тестировать приложения по сценариям, наиболее точно отражающим реальный мир.<br><br>Наборы данных из реального мира брать у клиентов.<br><br>Реальные данные должны быть модифицированы - удалена конфиденциальная информация.<br><br>Писать код проверки результатов.<br><br>Выставлять требования к производительности, масштабируемости, безопасности.<br><br>Проводить тестирование безопасности и моделирование угроз.<br><br>Интерфейс приложения не должен противоречить интерфейсу среды.<br><br>Приложение не противоречит сочетаниям клавиш среды запуска.<br><br>"Designing web usability: the practice of simplicity" Якоб Нильсен.<br><br>"Don't make me think! A common sense approach to web usability" Стивен Круг.<br><br>cnn.com - лучший пример дизайна.<br><br>joelonsoftware.com/articles.<br><br>Все члены команды должны посещать клиентов и наблюдать за использованием ПО.<br><br>Никогда не обещать того, чего не сможете дать, и всегда реализовывать обещанное.<br><br>Категории причин появления ошибок: слишком короткие или нереальные сроки выполнения; подход "сначала код, потом подумаем"; неправильное понимание требований; невежество разработчиков или недостаточное качество обучения; наплевательское отношение к работе.<br><br>Учитывать время на обучение, необходимое для того, чтобы реализовать какую-либо функцию.<br><br>Команда разработчиков должна быть истинным хозяином своего расписания, определять реалистичные даты выпуска за счет сокращения числа функций.<br><br>Перед написанием кода хорошенько подумать об архитектуре.<br><br>Продумать все "что, если".<br><br>Определить все риски проекта.<br><br>Члены команды не должны отдавать контроль над конструированием системы неумеющим это делать людям.<br><br>Не начинать сразу кодировать при получении плана.<br><br>Должна быть реалистичная оценка технологии и план разработки еще до включения компьютера.<br><br>Исключить добавление новых функций в планировании, которые изначально не планировались.<br><br>Чем больше деталей будет обнаружено в ПО и продумано до начала кодирования, тем меньше будет ошибок.<br><br>Нарисовать пользовательский интерфейс и полностью проработать каждый сценарий использования.<br><br>Коридорное тестирование.<br><br>Инженеры должны проявлять желание изучать предметную область.<br><br>Лучшие инженеры - это не те, кто умеет жонглировать битами, а те, кто качественно решает проблему пользователя.<br><br>Разработчики должны знать достаточно хорошо операционную систему, язык, технологию, которые используются в проектах.<br><br>Эффективно использовать выделяемые на обучение средства, проанализировав сильные и слабые стороны команды.<br><br>Лучший способ узнать что-то о технологии - сделать что-либо с применением этой технологии.<br><br>Все, о чем в действительности заботится ваш менеджер, - это возможность ежедневно сообщать своему боссу, чем вы занимаетесь день за днем.<br><br>Настоящие инженеры проникнуты глубокой гордостью за то, что они производят, и хотят тратить время и усилия на всех этапах разработки.<br><br>Компании и люди с реальной приверженностью качеству демонстрируют множество общих черт: тщательное предварительное планирование, личную ответственность, жесткий контроль качества и отличные коммуникационные навыки.<br><br>Только те, кто уделяет внимание деталям, выпускают продукты вовремя и с отличным качеством.<br><br>Проводить ревизии эффективности работы ежемесячно.<br><br>Регистрировать число ошибок в продукте ежемесячно (общее число обнаруженных за месяц).<br><br>"Software reliability: measurement, prediction, application" Джон Мьюз.<br><br>В среднем коде содержится одна ошибка на каждые 10 строк.<br><br>"Code complete" МакКоннелл.<br><br>По мере того как продукт создается, цена исправления ошибки растет экспоненциально, как и цена отладки.<br><br>Ускорять отладку и тестирование на этапе планирования.<br><br>Хороший отладчик == хороший разработчик.<br><br>Самая важная черта отладчика - интуиция.<br><br>Чтобы превратиться в отличного отладчика, необходимо быть специалистом в следующих областях: ваш проект, ваш язык, ваша технология/инструменты, ваша операционная система/среда.<br><br>Должна быть хорошая документация или объяснение на 15 мин от разработчиков, чтобы лучше узнать проект.<br><br>Нужно знать, что используемый язык делает за сценой.<br><br>Необходимо четко представлять себе, где можно найти более подробную информацию на случай, если она понадобится.<br><br>Писать утилиты.<br><br>Показывать свой код интервьюерам - сразу попадаем в первые 20%.<br><br>Изучение кода других инженеров и добавление новых функций - хорошая практика.<br><br>Читать код framework.<br><br>Друзья и коллеги-инженеры - лучшие источники знаний о разработке и отладке.<br><br>Подход к отладке:<br><ol><li>Воспроизведите ошибку.</li><li>Опишите ошибку.</li><li>Всегда предполагайте, что это ваша ошибка.</li><li>Разделяйте и властвуйте.</li><li>Думайте творчески.</li><li>Используйте инструменты.</li><li>Начните тяжелую отладку.</li><li>Убедитесь, что ошибка исправлена.</li><li>Извлеките урок и поделитесь им с другими.</li></ol><br></div></article><br><footer>&copy;&nbsp;<i>Copyright&nbsp;<a href="https://алексейлот.рф">алексейлот.рф</a>&nbsp;-&nbsp;возьми главную ноту</i></footer></body></html>
